import cv2 as cv
import numpy as np
# cv2.IMREAD_COLOR：默认参数，以彩色图像的方式读取图像文件。
# cv2.IMREAD_GRAYSCALE：以灰度图像的方式读取图像文件。
# cv2.IMREAD_UNCHANGED：以原始图像的方式读取图像文件，包括图像的alpha通道。
img_color = cv.imread("image/03.jpg",cv.IMREAD_COLOR)

cv.imshow("img_color", img_color)

# 边缘检测
canny_img = cv.Canny(img_color, 80, 255, None ,3, True)
cv.imshow("canny_img", canny_img)

# 内核
kernel = np.ones((2,2), np.uint8)
print(kernel)
# 梯度运算处理
gra_img = cv.morphologyEx(canny_img, cv.MORPH_GRADIENT, kernel)
cv.imshow("gra_img", gra_img)

# 发现轮廓列表
cont, ct  = cv.findContours(gra_img, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)
print(len(cont))

# 绘制轮廓
cv.drawContours(img_color, cont, -1, (255,255,41), 2)
cv.imshow("dw_color", img_color)
cv.waitKey()
cv.destroyAllWindows()